package asoasd1212;

public class J14_Array {

	//배열 array
	//지금까지 우리가 사용한 변수는
	//하나의 저장공간에 하나의 이름으로
	//하나의 값만 저장해왔음
	//만일, 데이터 처리 건수가 여러개인 경우 변수도 여러개 선언해야함
	//학생 한명의 성적처리 : 변수 7개 사용
	//학생 열명의 성적처리 : 변수 70개 사용
	//이렇게 하면 작성해야하는 코드도 많아지고 반복문 사용도 힘들어짐
	
	//자바에서는 동일한 자료형의 객체나 기본자료형을 묶어서 사용할수있음
	//묶어서 group 배열로 사용할수있음
	
	//배열에 속하는 각 개체는 "배열의 구성요소"라 함
	//배열에서 구성요소의 갯수를 알아내려면 length필드를 이용
	//배열의  값을 저장하거나 읽기 위해 각 구성요소에 접근하려면 index(위치)를 지정해야함
	//배열의 index는 0부터 시작함
	//배열은 일단 크기가 정해지면 변경 불가
		public static void main(String[] args) {
		// TODO Auto-generated method stub
			//배열을 사용하지 않은 성적처리 프로그램
			int num1=123456789;  //학생번호
			int kor1=98;
			int eng1=99;
			int mat1=95;

			int num2=123456789;  //학생번호
			int kor2=98;
			int eng2=91;
			int mat2=80;
			
			int num3=123456789;  //학생번호
			int kor3=91;
			int eng3=67;
			int mat3=54;
			
			int num4=123456789;  //학생번호
			int kor4=83;
			int eng4=77;
			int mat4=66;
			
			int tot1 = kor1+eng1 +mat1;
			int tot2 = kor2 +eng2 +mat2;
			int tot3 = kor3 +eng3 +mat3;
			int tot4 = kor4 +eng4 +mat4;
			
			//배열을 사용한 성적처리 프로그램
			
			int[] stdno = new int[4]; //4명분의 학생번호
			int[] kor = new int[4];
			int[] eng =new int[4];
			int[] mat =new int[4];
			
			//배열의 구성요소에 값저장
			stdno[0] =123456789;
			stdno[1] =123456788;
			stdno[2] =123456787;
			stdno[3] =123456786;
			
			System.out.println(stdno);
			System.out.println(stdno[0]);
			System.out.println(stdno[1]);
			System.out.println(stdno[2]);
			System.out.println(stdno[3]);
			
			kor[0]=75;
			kor[1]=66;
			kor[2]=48;
			kor[3]=96;
			
			eng[0]=67;
			eng[1]=12;
			eng[2]=75;
			eng[3]=54;
			
			mat[0]=40;
			mat[1]=30;
			mat[2]=20;
			mat[3]=10;
			
			System.out.println(kor);
			System.out.println(kor[0]);
			System.out.println(kor[1]);
			System.out.println(kor[2]);
			System.out.println(kor[3]);
			
			System.out.println(eng);
			System.out.println(eng[0]);
			System.out.println(eng[1]);
			System.out.println(eng[2]);
			System.out.println(eng[3]);
			
			System.out.println(mat);
			System.out.println(mat[0]);
			System.out.println(mat[1]);
			System.out.println(mat[2]);
			System.out.println(mat[3]);
			
			/*int [] total =new int[3];
			total[0]=kor[0]+eng[0]+mat[0];
			total[1]=kor[1]+eng[1]+mat[1];
			total[2]=kor[2]+eng[2]+mat[2];
			total[3]=kor[3]+eng[3]+mat[3];*/
			
			int [] tot =new int[4];
			for ( int i=0;i<=3;++i)
				tot [i]=kor[i]+eng[i]+mat[i];
			
			System.out.println(tot);
			System.out.println(tot[0]);
			System.out.println(tot[1]);
			System.out.println(tot[2]);
			System.out.println(tot[3]);
			
			//문제1 : 복권추첨을 위한 난수6개를 만들어 Mylotto라는 배열에 저장하고 모두출력
	        // 로또 6/45에 근거하여 1-45범위내 난수사용
			int [] lotto = new int[6];
			
			for (int j=0;j<=5;++j) 
			{
			lotto[j] =(int) (Math.random()*45)+1; 
			System.out.println((j+1)+"번쨰 로또번호는 "+lotto[j]);
			}
			
			
			//배열 선언 및 값 초기화
			char []grade={'수','우','미','양','가'};
			//char[] grade = new char[5];
			//grade[0]='수';
			//grade[1]='우';
			//grade[2]='미';
			//grade[3]='양';
			//grade[4]='가'; 와 같은식
			
			for(int k=0;k<grade.length;++k)
				System.out.println(grade[k]);
			
			//Interating On Array
			//JDK5 이전에서는 for문과 배열의 index를 이용해서 배열의 값을 출력했음
			//JKD5이상에서는 for문이 향상되었음
			//즉,배열의 index없이 배열을 반복 처리 가능
			//for(배열구성요소자료형 : 배열명)
			
			for(char g : grade)
				System.out.println(g);
			
			//stdno
			for (int n: stdno)
				System.out.println(n);
			
			//kor
			for (int m :kor)
				System.out.println(m);
			//eng
			for (int b:eng)
				System.out.println(b);
			//mat
			for(int v: mat)
				System.out.println(v);
			
			//mylotto
			for (int lt :lotto)
				System.out.println("s"+lt);	
			
			
			
			
			
			
}
}
